//数据融合算法
// utils/dataMerger.js
const WEIGHT_MAP = {
    'owm': 0.6,
    'aqicn': 0.4
  };
  
  // 加权平均
  module.exports = (sources) => {
    // 检查 sources 是否是数组
    return sources.reduce((acc, source) => {
      // 检查 source 是否是对象，并且包含 list 属性
      source.list.forEach(entry => {
        // 检查 entry 是否是对象，并且包含 datetime 和 aqi 属性
        const existing = acc.find(e => e.datetime === entry.datetime);
        //如果有相同的时间戳，就加权平均
        if (existing) {
          // 检查 existing.provider 是否是数组，如果不是，就转换为数组
          existing.aqi = existing.aqi * WEIGHT_MAP[source.provider] + 
                        entry.aqi * WEIGHT_MAP[source.provider];
        } else {//如果没有相同的时间戳，就添加一个新的条目
          acc.push({
            datetime: entry.datetime,
            aqi: entry.aqi * WEIGHT_MAP[source.provider],
            provider: [source.provider]
          });
        }
      });
      return acc;
    }, []);
  };